// 节流:周期性的

export function throttle(func,delay = 100){
    let timer = null
    let last = null
   
  //上一次执行事件的时间
    return function (args){
       let now = new Date();//当前时间
       if(!last){
           func(args)
           last = now;
       }else{
            if(now-last>=delay){
                //当上一次的执行事件和现在时间差大于延迟时间就立即执行
                func(args)
                last = now;
            }else{
                //主要是为了处理在小于延迟事件内的触发事件
                clearTimeout(timer);
                //最后一次按键事件
                //当最后一次 可能会出现 当前时间减上一次时间小于delay，也就是说 可能到了最后的时候，不会执行函数，也就无法获取到完整的数据，
                //所以，对最后一次触发事件进行延迟，延迟一个周期就可以了
                timer = setTimeout(function(){
                    func(args)
                   // last = now;
                },delay);

            }
       }
    }
}
// 防抖动-只有最有一次的触发有效果
/*
    *主要参数(func，delay)
    //使用方式 直接引入放入到 
*/
export  function debounce(func,delay = 1000){
    let timer;
    return function (args){
        clearTimeout(timer);
        timer = setTimeout(()=>{
            func(args)
        },delay)
    }
}

